1. Technical Field
The present invention generally relates to computer systems and, more particularly, to an apparatus and method for upgrading a computer system operating system by loading the new operating system in a memory of or associated with a slave processor of the computer system. The present invention may find particular application in the upgrading of the operating systems of processor-based communication receivers, and, even more particularly, satellite receivers.
2. Description of Related Art
An operating system ("OS") is a computer software that runs a number of different applications programs in a computer system. An operating system operates to optimize the use of computer resources by allowing many different applications programs to run on the computer system. It is desirable, therefore, to upgrade a computer system operating system from time to time to ensure efficient use of the computer resources by maximizing the number of applications programs that can be run on the computer system. Typically, an operating system is stored in memory that comprises a portion of or is coupled to a main processor or slave processor of the computer system. In an integrated receiver/decoder used in satellite communications, the operating system comprises the application programs that supply the functionality of the receiver. Occasionally, it becomes necessary to provide corrections to normal functionality of the receiver or provide new features in the applications programs.
Currently, operating systems are upgraded as follows: (1) erasing the old (existing) operating system, including the old applications programs, from a memory attached to the main processor, for example, a non-volatile memory or, more particularly, a FLASH memory; (2) loading a new operating system into the non-volatile memory; and (3) assembling new applications programs from the new operating system in the non-volatile memory. By non-volatile memory is intended memory which is persistent when power is removed from the device which it serves. By FLASH memory as used herein, applicants mean a form of non-volatile memory that can be erased and written many times. FLASH memory thus behaves like so-called read-only memory when in normal use but can be erased and written by using device specific instructions that command the FLASH memory to erase itself and/or accept new data. A drawback of the current method, however, is the long window of time that is required to load the new operating system and to assemble the new applications programs in the non-volatile or, more particularly, FLASH memory. In a satellite communications system for transmitting video signals, for example, this window of time may be as long as 5 minutes during which the computer system is vulnerable to a system failure, such as a power failure, which will terminate the OS upgrade process. An adverse result of this is the computer system is left without an operating system because the old operating system has been erased and the new operating system has not been completely loaded.
One way of overcoming the above problem might be to buffer the new operating system in a memory of or attached to the main processor, for example, a random access memory ("RAM"), before erasing the old operating system from the non-volatile or FLASH memory. Once the entire new operating system is received in RAM, the FLASH memory containing the old operating system can be erased and loaded with the new operating system.
One form of temporary random access memory associated with a processor may be a cache memory, a special adjunct memory closely associated with the processor. Thus, a cache memory may comprise one form of buffer memory useful for assisting in an operating system upgrade. Buffering a large operating system requires a large RAM. A typical Business Satellite Receiver's ("BSR") operating system, for example, is approximately 270 kilobytes in size and can be expanded to 384 kilobytes. Moreover, a typical main processor of such a receiver may be limited in its memory addressing capabilities and may only have 128 kilobytes of random access memory (RAM). Current computer systems thus may have a limited amount of RAM attached to the main processor such that it is not always possible to employ this method. One alternative is to increase the costs of manufacturing a system by providing a more expensive main processor with greater random access memory. On the other hand, it is an objective of the present invention to provide an operating upgrade method which minimizes costs and, yet permits efficient operating system upgrade when required. Accordingly, there is a need for a more effective way of upgrading a computer system operating system without having to add more memory to the main processor and to save system receiver manufacturing costs.